home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / CHKBOOK.PAK / CHECKDOC.H < prev    next >
C/C++ Source or Header  |  1997-05-06  |  3KB  |  91 lines

  1. // checkdoc.h : interface of the CChkBookDoc class
  2. //
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992-1995 Microsoft Corporation
  5. // All rights reserved.
  6. //
  7. // This source code is only intended as a supplement to the
  8. // Microsoft Foundation Classes Reference and related
  9. // electronic documentation provided with the library.
  10. // See these sources for detailed information regarding the
  11. // Microsoft Foundation Classes product.
  12.  
  13.  
  14. // This class implements all the details about the transaction-based,
  15. // fixed-length record document that are specific to the check book
  16. // document.  Generic transaction-based, fixed-length record document
  17. // behavior is implemented in its based class, CFixedLenRecDoc.
  18. /////////////////////////////////////////////////////////////////////////////
  19.  
  20.  
  21. class CChkBookDoc : public CFixedLenRecDoc
  22. {
  23. protected:  // create from dyunamic creation only
  24.     CChkBookDoc();
  25.     DECLARE_DYNCREATE(CChkBookDoc)
  26.  
  27. // Attributes
  28.     UINT m_nActiveRecord;
  29.  
  30.     // Extra header (in addition to that of CFixedLenRecDoc)
  31.     struct
  32.     {
  33.         DWORD dwFileSignature;
  34.         BOOL bUnicode;
  35.         UINT nFirstCheckNo;
  36.     } m_extraHeader;
  37.  
  38.     // Each check is written in a fixed length record.
  39.     struct
  40.     {
  41.         DWORD   dwCents;
  42.         TCHAR   szPayTo[40];
  43.         TCHAR   szDate[10];
  44.         TCHAR   szMemo[40];
  45.     } m_record;
  46.  
  47. // Overrides of CFixedLenRecDoc and CDocument
  48.     BOOL OnOpenDocument(LPCTSTR lpszPathName);
  49.     BOOL OnSaveDocument(LPCTSTR lpszPathName);
  50.     BOOL SaveModified();
  51.     void* OnCreateNewRecord(int nNewRecordIndex);
  52.     BOOL OnReadExtraHeader();
  53.     void OnWriteExtraHeader(BOOL bNewHeader);
  54.  
  55. // Operations, called by book view and check view
  56.     void GetCheck(UINT nCheckNo, DWORD& dwCents, CString& strPayTo,
  57.             CString& strDate, CString& strMemo);
  58.     void UpdateCheck(CView* pSourceView, UINT nCheckNo, DWORD dwCents,
  59.             LPCTSTR lpszPayTo, LPCTSTR lpszDate,
  60.             LPCTSTR lpszMemo);
  61.     void ChangeSelectionNextCheckNo(BOOL bNext);
  62.     void ChangeSelectionToCheckNo(UINT nCheckNo);
  63.     UINT GetActiveCheckNo();
  64.     UINT GetFirstCheckNo();
  65.     UINT GetLastCheckNo();
  66.  
  67. // Implementation
  68.     void UpdateIniFileWithDocPath(LPCTSTR lpszPathName);
  69.     BOOL MaybeCommitDirtyCheck();
  70.     void PackRecord(DWORD dwCents, LPCTSTR lpszPayTo, LPCTSTR lpszDate,
  71.         LPCTSTR lpszMemo);
  72.     void ParseRecord(DWORD& dwCents, CString& strPayTo,
  73.             CString& strDate, CString& strMemo);
  74.     UINT CheckNoToRecordIndex(UINT nCheckNo);
  75.     UINT RecordIndexToCheckNo(UINT nRecordIndex);
  76.  
  77. public:
  78.     virtual ~CChkBookDoc();
  79.  
  80. // Generated message map functions
  81. protected:
  82.     //{{AFX_MSG(CChkBookDoc)
  83.     afx_msg void NewCheck();
  84.     afx_msg void OnNextCheck();
  85.     afx_msg void OnUpdateNextCheck(CCmdUI* pCmdUI);
  86.     afx_msg void OnPrevCheck();
  87.     afx_msg void OnUpdatePrevCheck(CCmdUI* pCmdUI);
  88.     //}}AFX_MSG
  89.     DECLARE_MESSAGE_MAP()
  90. };
  91.